from my_base_sk.MySK import *
from semantic_kernel.prompt_template.prompt_template_config import PromptTemplateConfig
from semantic_kernel.prompt_template.input_variable import InputVariable
from semantic_kernel.functions import KernelArguments

translate_prompt = """
将中文词'{{$chinese}}'翻译为日语
直接给出一个翻译结果，不要评论。
尽可能用Hanji表示。
"""

'''
嵌套调用的重点在{{MyDemoPlugin.translate $input}}
'''
joke_prompt = """
'{{$input}}'的日语是：{{MyDemoPlugin.translate $input}}
根据以上词汇在中日文中的语义差异，讲一个笑话。
"""

trans_prompt_template_config = PromptTemplateConfig(
    template=translate_prompt,
    description="Translate Chinese to Japanese",
    execution_settings={service_id: req_settings},
    input_variables=[
        InputVariable(name="chinese", description="The source", is_required=True),
    ],
)

joke_prompt_template_config = PromptTemplateConfig(
    template=joke_prompt,
    description="Generate a joke about a specific topic",
    execution_settings={service_id: req_settings},
    input_variables=[
        InputVariable(name="input", description="The topic", is_required=True),
    ],
)
'''
{{MyDemoPlugin.translate $input}}
重点参数 
plugin_name
function_name
'''
translate_function = kernel.add_function(
    function_name="translate",
    plugin_name="MyDemoPlugin",
    prompt_template_config=trans_prompt_template_config,
)

joke_function = kernel.add_function(
    function_name="joke",
    plugin_name="MyDemoPlugin",
    prompt_template_config=joke_prompt_template_config,
)

result = asyncio.run(
    run_function(joke_function, KernelArguments(input="信件")),
)

print(result)
